package com.wing.product.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wing.common.utils.JsonResult;
import com.wing.product.model.entity.WarehouseProductInventory;
import com.wing.product.model.response.MoveInventoryVO;
import com.wing.product.model.response.WarehouseProductInventoryProcessVO;
import com.wing.product.model.response.WarehouseProductInventoryVO;

import java.util.List;
import java.util.Map;

public interface WarehouseProductInventoryService extends IService<WarehouseProductInventory>{


    List<WarehouseProductInventoryVO> selectCount(List<Long> ids,String productId);

    List<WarehouseProductInventoryVO> selectInventory(List<Long> ids,String productId);

    Page<WarehouseProductInventoryVO> list4app(Page pg, Map paramMap);

    JsonResult<List<WarehouseProductInventoryVO>> selectProduct(String spaceId,String productId,List<String> bundleCodeList);

    List<WarehouseProductInventoryVO> findByShipmentOrderDetailId(String warehouseShipmentOrderDetailId);

    Integer queryUserBundleCode(List<String> userBundleCodes);

    List<WarehouseProductInventory> getAllProductInventory();

    JsonResult<Map<String,Object>> selectRanking();

    JsonResult<Map<Object, Object>> selectInventorySum();

    JsonResult<Map<Object, Object>> selectInventoryTrend();

    List<WarehouseProductInventoryVO> selectProductDetail(String outboundOrderId);

    List<WarehouseProductInventoryVO> selectProductDetailOut(String outboundOrderId);

    List<WarehouseProductInventoryVO> selectMaterialDetail(List<String> materialNumberList);

    List<MoveInventoryVO> factoryList();

    List<MoveInventoryVO> areaList(String warehouseId);

    List<MoveInventoryVO> spaceList(String warehouseAreaId);

    Boolean review(Long id,Long signId);

    WarehouseProductInventoryVO selectByInventoryId(String id);

    JsonResult update(WarehouseProductInventoryVO warehouseProductInventoryVO);

    WarehouseProductInventoryProcessVO selectInventoryProcess(String id);

}
